/**
 *autor:Andre, Renato
 *data:07/05/2010
 *descricao:inicio do Pessoa
 *obs:esboco
 */
package com.condominio.DB4O.model;

import java.util.ArrayList;
import java.util.List;

import com.condominio.DB4O.DB4Odao.DAODB4o;




public class Pessoa {
	
	transient public final static int USUARIO=0;
	
	transient public final static int ADMINISTRADOR=1;


	private int id;
	private String nome;
	//@Column(unique=true)
	private String login;
	private String senha;
	private int privilegio;
	//@Column(unique=true)
	private int apartamento;

	
	private List<Conta> contas=new ArrayList<Conta>();

	
	private List<Recado>recados=new ArrayList<Recado>();

	public Pessoa() {}
	
	
	public Pessoa(String nome, String login, String senha, int privilegio,int apartamento) {
		super();
		this.nome = nome;
		this.login = login;
		this.senha = senha;
		this.privilegio = privilegio;
		this.apartamento=apartamento;
		this.id=DAODB4o.gerarID("Pessoa");
	}
	//usado no query by example
	public Pessoa(int id,int apartamento){
		this.apartamento=apartamento;
	}
	//usado no query by example
	public Pessoa(int apartamento){
		this.apartamento=apartamento;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public int getPrivilegio() {
		return privilegio;
	}
	public void setPrivilegio(int privilegio) {
		this.privilegio = privilegio;
	}

	//-----------contas------------//

	public List<Conta> getContas() {
		return contas;
	}
	public void setContas(List<Conta> contas) {
		this.contas = contas;
	}
	public void addConta(Conta c){
		this.contas.add(c);
	}
	public void removeContaByConta(Conta c){
		this.contas.remove(c);
	}
	public void removeContaById(int id){
		this.contas.remove(id);
	}
	public Conta findConta(int id){
		return this.contas.get(id-1);
	}
	public void setConta(Conta c){

	}

	//-------recados-----------//
	public List<Recado> getRecados() {
		return recados;
	}
	public void setRecados(List<Recado> recados) {
		this.recados = recados;
	}
	public int getApartamento() {
		return apartamento;
	}
	public void setApartamento(int apartamento) {
		this.apartamento = apartamento;
	}
	public void addRecado(Recado c){
		this.recados.add(c);
	}
	public void removeRecadoByRecado(Recado c){
		this.recados.remove(c);
	}
	public void removeRecadoById(int id){
		this.recados.remove(id);
	}
	public Recado findRecado(int id){
		return this.recados.get(id);
	}
	public String toString(){

		String priv=getPrivilegio()==1?"Administrador":"Usuario";

		String s= "Id:"+getId()+"\nNome:"+getNome()+"\nPrivilegio:"+priv+ "\nApartamento:"+getApartamento()+"\nContas:";
		if(!contas.isEmpty()){
			for(Conta c:contas){
				s="\n"+s+c.toString();
			}
		}
		s=s+"\n\nRecados:";
		if(!recados.isEmpty()){
			for(Recado r:recados){
				s="\n"+s+r.toString();
			}
		}

		return s;
	}
}


